﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace OCU
{
    public class LunabotHealthState
    {
        #region Variables
        /// <summary>
        /// Active Output State
        /// </summary>
        [Category("Active Output State")]
        [DisplayName("Output State")]
        [Description("Output State Applied on Lunabot")]
        [Browsable(false)]
        [ReadOnly(true)]
        public LunabotOutputState OutputState { get; set; }

        /// <summary>
        /// Electronics Battery Voltage Level
        /// </summary>
        [Category("Batteries")]
        [DisplayName("Electronics Battery")]
        [Description("Voltage Level of Electronics Battery")]
        [ReadOnly(true)]
        public float electronicsBatteryVoltage { get; set; }

        /// <summary>
        /// Excavation Battery Voltage Level
        /// </summary>
        [Category("Batteries")]
        [DisplayName("Excavation Battery")]
        [Description("Voltage Level of Excavation Battery")]
        [ReadOnly(true)]
        public float excavationBatteryVoltage { get; set; }

        /// <summary>
        /// Drive Battery Voltage Level
        /// </summary>
        [Category("Batteries")]
        [DisplayName("Drive Battery")]
        [Description("Voltage Level of Drive Battery")]
        [ReadOnly(true)]
        public float driveBatteryVoltage { get; set; }

        /// <summary>
        /// Dumping Viability
        /// </summary>
        [Category("Collection Bin")]
        [DisplayName("Can Dump")]
        [Description("Indicates whether the bin should or should not be dumped")]
        [ReadOnly(true)]
        public bool canDump { get; set; }

        #endregion

        public LunabotHealthState()
        {
            /*set default values*/
            this.OutputState = new LunabotOutputState();
            this.driveBatteryVoltage = 0;
            this.electronicsBatteryVoltage = 0;
            this.excavationBatteryVoltage = 0;
            canDump = false;
        }

    }
}
